<!-- 见证任务管理主页 -->
<template>
  <div>
    <TabMenu v-if="TabMenuShowFlag" :tab-list="tabList" />
    <!-- 切换页签保持原有数据 -->
    <!-- <keep-alive>
      <router-view />
    </keep-alive> -->
    <keep-alive>
      <router-view v-if="$route.meta.keepAlive"></router-view>
    </keep-alive>
    <router-view v-if="!$route.meta.keepAlive"></router-view>
  </div>
</template>
<script>
  // 这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
  // import { witnessProjectBidSectionDetail } from "../../../api/api";
  import TabMenu from "../../../components/layout/components/tabMenu.vue";
  export default {
    // 引入组件
    components: {
      TabMenu
    },
    props: {},
    data() {
      // 这里存放数据
      return {
        activeName: "WitnessTaskAssign",
        wsUrl: "/ws/witness/project/updateProject",
        wsNettyUrl: `ws://${location.host}/gdw/netty/ws/witness/project/updateProject`
      };
    },
    // 监听属性 类似于data概念
    computed: {
      // wsData() {
      //   return this.$websocket.getters.wsData;
      // },
      // 获取有权限的显示模块列表
      tabList() {
        const arr = [];
        if (this.$hasBtnsPerm("BTN_WITNESS_TASK_ALLOCATE_LIST")) {
          arr.push({
            path: "/WitnessTaskManagement/WitnessTaskAssign",
            title: "见证任务分配"
          });
        }
        if (this.$hasBtnsPerm("BTN_WITNESS_TASK_SELECT_LIST")) {
          arr.push({
            path: "/WitnessTaskManagement/WitnessTaskView",
            title: "见证任务查看"
          });
        }
        if (this.$hasBtnsPerm("BTN_WITNESS_TASK_APPROVE_LIST")) {
          arr.push({
            path: "/WitnessTaskManagement/WitnessRecordApprove",
            title: "见证记录审核"
          });
        }
        return arr;
      },
      // 是否展示tab切换组件的标志
      TabMenuShowFlag() {
        /* tab切换组件默认展示，不展示的情况如下所示：
        1. 新增见证任务
        2. 见证任务查看模块：见证中的阶段跳转见证工作台
       */
        let flag = true;
        if (
          this.$route.path === "/WitnessTaskManagement/ViewingWitnessData" ||
          this.$route.path === "/WitnessTaskManagement/AddWitnessTask" ||
          this.$route.path === "/WitnessTaskManagement/WitnessTable"
        ) {
          flag = false;
        }
        return flag;
      }
    },
    // 监控data中的数据变化
    watch: {
      // wsData() {}
    },
    // 生命周期 - 创建完成（可以访问当前this实例）
    async created() {
      await this.webSocketInitFn();
    },
    // 生命周期 - 挂载完成（可以访问DOM元素）
    mounted() {},
    // 生命周期 - 销毁之前
    beforeDestroy() {
      sessionStorage.removeItem("witnessTaskView");
      // this.$websocketNetty.dispatch("websocketClose", this.wsNettyUrl);
      // this.websocketCloseFn();
    },
    // 生命周期 - 销毁完成
    destroyed() {
      console.log("destroyed");
      this.websocketCloseFn();
    },
    // deactivated() {
    //   console.log("deactivated");
    //   this.websocketCloseFn();
    // },
    // // 如果页面有keep-alive缓存功能，这个函数会触发
    // async activated() {
    //   console.log("activated");
    //   // await this.websocketCloseFn();
    //   // this.$websocketNetty.dispatch("websocketInit", this.wsNettyUrl);
    //   await this.webSocketInitFn();
    // },
    // 方法集合
    methods: {
      websocketCloseFn() {
        console.log("websocketCloseFn");
        clearTimeout(this.closeFlag);
        this.closeFlag = setTimeout(() => {
          this.$websocketNetty.dispatch("websocketClose", this.wsNettyUrl);
        }, 1500);
      },
      webSocketInitFn() {
        // data.forEach((item) => {
        // console.log("订阅witnessSubTaskId", item.witnessSubTaskId);
        // 订阅消息监听
        // let url = `/ws/witness/project/`;
        // if (this.subscribedUrlArr.indexOf(url) === -1) {
        // this.$websocket.dispatch("websocket_subscribe", this.wsUrl);
        // netty 替换老ws
        this.$websocketNetty.dispatch("websocketInit", this.wsNettyUrl);
        // this.subscribedUrlArr.push(url);
        // }
        // });
      }
      // 见证详细
      // async witnessProjectBidSectionDetailFn(data) {
      //   // this.tableLoading = true;
      //   // this.tableData = [];
      //   console.log("data1111", data);
      //   if (!data || !data.projectId) {
      //     return;
      //   }
      //   let p = {
      //     projectId: data.projectId,
      //     bidSectionIdList: data.bidSectionIdList
      //   };
      //   console.log("p", p);
      //   try {
      //     const res = await witnessProjectBidSectionDetail(p);
      //     console.log("res", res);
      //     if (res.success) {
      //       // let i, j;
      //       this.tableData.forEach((item) => {
      //         if (item.projectId === data.projectId) {
      //           // i = index;
      //           // 项目名称 , 项目编号,行业类别,交易方式,资审方式
      //           console.log("item", item);
      //           // .bidSectionInfoList,witnessProjectBaseInfo
      //           // item.projectName = res.data;
      //           let project = res.data.witnessProjectBaseInfo;
      //           let bidSectionInfoList = res.data.bidSectionInfoList;
      //           item.projectName = project.projectName;
      //           item.projectCode = project.projectCode;
      //           item.industry = project.industry;
      //           item.industryType = project.industryType;
      //           item.tenderMode = project.tenderMode; // 交易方式
      //           // item.sourceSystemCode = project.sourceSystemCode;
      //           // item.sourceSystemName = project.sourceSystemName;
      //           item.qualificationExamMethod = project.qualificationExamMethod; // 资审方式
      //           bidSectionInfoList.forEach((itemC) => {
      //             // table的数据
      //             item.bidList.forEach((itemB) => {
      //               let flag = itemC.bidSectionCode === itemB.bidSectionCode;
      //               if (flag) {
      //                 itemB.evaluationAddress = itemC.evaluationAddress;
      //                 itemB.openAddress = itemC.openAddress;
      //                 itemB.openStartTime = itemC.openStartTime;
      //                 itemB.bidSectionName = itemC.bidSectionName;
      //                 itemB.bidSectionCode = itemC.bidSectionCode;
      //                 // itemB.witnessAllocateUserName =
      //                 itemC.witnessSubTaskVOList.forEach((itemD) => {
      //                   if (itemD.witnessSubTaskName === itemB.witnessSubTaskName) {
      //                     console.log("1111", itemD.witnessSubTaskName);
      //                     itemB.witnessAllocateUserName = itemD.witnessAllocateUserName;
      //                     itemB.witnessUserName = itemD.witnessUserName;
      //                     itemB.witnessSubTaskAllocateTime = itemD.witnessSubTaskAllocateTime;
      //                   }
      //                 });
      //               }
      //             });
      //           });
      //         }
      //       });
      //       this.tableData;
      //       // this.$set(this.tableData, i, Obj);
      //     } else {
      //       this.$message({
      //         type: "error",
      //         message: res.message || "获取数据失败，请稍后再试",
      //         single: true
      //       });
      //     }
      //   } catch (error) {
      //     console.warn(error);
      //   }
      // }
    }
  };
</script>
<style lang="scss" scoped></style>
